home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / smiley / choose.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-22  |  2KB  |  89 lines

  1. unit Choose;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, Buttons, ExtCtrls, StdCtrls, Smiley, DsgnIntF, TypInfo;
  8.  
  9. type
  10.   TChooseDlg = class(TForm)
  11.     BitBtn1: TBitBtn;
  12.     Panel1: TPanel;
  13.     SpeedButton1: TSpeedButton;
  14.     SpeedButton2: TSpeedButton;
  15.     SpeedButton3: TSpeedButton;
  16.     SpeedButton4: TSpeedButton;
  17.     SpeedButton5: TSpeedButton;
  18.     SpeedButton6: TSpeedButton;
  19.     procedure SpeedButton1Click(Sender: TObject);
  20.     procedure FormCreate(Sender: TObject);
  21.   private
  22.     { Private declarations }
  23.     FMood      : TMood;
  24.     procedure SetMood(NewMood: TMood);
  25.   public
  26.     { Public declarations }
  27.     property Mood: TMood read FMood write SetMood;
  28.   end;
  29.  
  30.   TMoodProperty = class( TEnumProperty )
  31.        function GetAttributes: TPropertyAttributes; override;
  32.        procedure Edit; override;
  33.   end;
  34.  
  35. var
  36.   ChooseDlg: TChooseDlg;
  37.  
  38. implementation
  39.  
  40. {$R *.DFM}
  41.  
  42. procedure TChooseDlg.SpeedButton1Click(Sender: TObject);
  43. begin
  44.      FMood := TMood((Sender as TSpeedButton).Tag);
  45. end; {SpeedButton1Click}
  46.  
  47. procedure TChooseDlg.FormCreate(Sender: TObject);
  48. begin
  49.      SpeedButton1.Down := True;
  50. end; {FormCreate}
  51.  
  52. procedure TChooseDlg.SetMood(NewMood: TMood);
  53. var
  54.    Counter: Integer;
  55. begin
  56.      FMood := NewMood;
  57.      for Counter := 0 to ComponentCount - 1 do
  58.      begin
  59.           if (Components[Counter] is TSpeedButton) then
  60.           begin
  61.                if TSpeedButton(Components[Counter]).Tag = Ord(NewMood) then
  62.                   TSpeedButton(Components[Counter]).Down := True; 
  63.           end;
  64.      end;
  65. end;  {SetMood}
  66.  
  67. {---------Property Editor Stuff--------------}
  68.  
  69. function TMoodProperty.GetAttributes: TPropertyAttributes;
  70. begin
  71.     Result := [paDialog];
  72. end;  {GetAttributes}
  73.  
  74. procedure TMoodProperty.Edit;
  75. var
  76.    ChooseDlg: TChooseDlg;
  77. begin
  78.      ChooseDlg := TChooseDlg.Create(Application);
  79.      try
  80.         ChooseDlg.Mood := TMood(GetOrdValue);
  81.         ChooseDlg.ShowModal;
  82.         SetOrdValue(Ord(ChooseDlg.Mood))
  83.      finally
  84.         ChooseDlg.Free
  85.      end;
  86. end; {Edit}
  87.  
  88. end.
  89.